﻿using System.ServiceModel;
using Axium.Contracts.Data;

namespace Axium.Contracts.Services
{
    /// <summary>
    /// Service contact to define service interface
    /// </summary>
    [ServiceContract]
    public interface ISomeService
    {
        /// <summary>
        /// Operation contact which defines what method, input and output. Input and output parameters need to be datacontacts
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [OperationContract]
        //[TransationGroup("Administrators")]
        SomeItemsResponse GetAllItems(SomeItemsRequest request);

        /// <summary>
        /// Operation contact which defines what method, input and output. Input and output parameters need to be datacontacts
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [OperationContract]
        SomeItemResponse GetItem(SomeItemRequest request);

        [OperationContract]
        void ThrowExeption();

    }
}
